草庐IT

docker - 从 docker 复制到 CI 构建中的主机

全部标签

go - 在一个 docker 容器中打开 go 代码,在另一个容器中打开 jaegertracing

我有一个go项目,它使用以下命令在一个docker容器中发送OpenTracing跨度,并在它自己的容器中运行jaegertracing:dockerrun-p6831:6831/udp-p16686:16686jaegertracing/all-in-one:latest当我运行以下go测试代码时,我可以在jaegerui中看到它们:import("testing"//"fmt""io"opentracing"github.com/opentracing/opentracing-go"jaeger"github.com/uber/jaeger-client-go"config"git

go - 如何在 Travis-CI 上将 Go 项目从 Linux 交叉编译到 Windows

因为Travis-CI对Go的原生Windows支持似乎很缺乏,我想走这条路。我最好怎么做? 最佳答案 这为Linux本地构建,为OSX本地构建,并为windows交叉编译,作为linux构建的一部分:.travis.yml:language:gosudo:falsematrix:include:-go:tipos:linuxenv:CROSS_COMPILE=true-go:tipos:osxbefore_install:-if["$CROSS_COMPILE"="true"];thensudoaptupdate;fiinstal

go - 如何在 Golang 构建中使用 -ldflags -X 设置包变量

我正在使用Go1.9.2创建一个应用程序,我试图在构建过程中使用ldflags-X选项向它添加一个版本字符串变量。我已经设法在我的main包中设置了一个Version变量,方法是:-ldflags"-Xmain.Version=1.0.0",但是我真正需要的是在我的config包中设置Version变量,而不是main变量。这可能吗?这是我的构建命令:gobuild-ldflags"-Xconfig.Version=1.0.0"-o$(MY_BIN)$(MY_SRC) 最佳答案 引自Commandlink的文档:-Ximportpa

docker - go get golang-migrate inside of docker 错误

我正在尝试使用Docker在go中设置一个小型的首次应用程序。我想使用cli工具进行go-lang迁移。但是我收到以下错误:packagegithub.com/golang-migrate/migrate/v4/internal/cli:在以下任何一个中找不到包“github.com/golang-migrate/migrate/v4/internal/cli”:/usr/local/go/src/github.com/golang-migrate/migrate/v4/internal/cli(来自$GOROOT)/go/src/github.com/golang-migrate/m

docker - 从远程机器访问托管在 digital ocean 水滴上的容器化 API

我正在尝试连接到DigitalOceanDockerDroplet上的docker-compose部署服务堆栈。它包含一个带有数据库的MySQL容器和一个带有API的go/alpine容器。我正在使用2个容器连接到的自定义桥接网络。当尝试在我的mac上本地部署堆栈并通过localhost:port访问API容器时,也会出现此问题。我没有使用docker-machine,因为我认为它只用于多主机部署。堆栈部署成功。服务器容器似乎能够连接到数据库容器。我想知道问题是否在主机的防火墙规则之内?我确实尝试在我的机器上运行mysql服务器的情况下在本地运行该应用程序并且它确实有效,所以我认为原因

go - 复制有条件的目录

我有一个任务是复制目录,然后使用Go将其粘贴到有条件的另一个文件夹中。例如,我有一个这样的目录树:项目---app(复制到哪里)---packages(从哪里复制)------流程------------client01------------建立(文件夹)----------------main.go----------------config.json----------------someFolder------------someText.txt----------client02------------测试4----------------构建------------测试项目

docker - 当 PIPE docker 中的输出时从 os.Stdin 读取时被阻止

我正在尝试将程序的输出(日志)通过管道传输到Go程序,该程序聚合/压缩输出并上传到S3。运行该程序的命令是“/program1|/logShipper”。logShipper是用Go编写的,它只是从os.Stdin读取并写入本地文件。本地文件将由另一个goroutine处理并定期上传到S3。有一些现有的docker日志驱动程序,但我们在完全托管的提供程序上运行容器并且日志处理费用非常昂贵,因此我们想绕过现有解决方案并直接上传到S3。logShipper的主要逻辑只是从os.Stdin读取并写入某个文件。它在本地机器上运行时工作正常,但在docker中运行时,goroutine在read

go - Gitlab CI 和 Go 模块

我有一个Go项目,我想为我的项目编写一个GitlabCI文件,但我看到加载模块要求时出错。这是我的gitlabCI文件:stages:-compilebuild:stage:compileimage:golang:1.12script:-gobuild-obinaryerror:Runningwithgitlab-runner11.8.0(4745a6f3)onRunner#6e0e0c446UsingDockerexecutorwithimagegolang:1.12...Pullingdockerimagegolang:1.12...Usingdockerimagesha256:b

go - 如何在 Golang 构建中使用 -ldflags -X 设置包变量

我正在使用Go1.9.2创建一个应用程序,我试图在构建过程中使用ldflags-X选项向它添加一个版本字符串变量。我已经设法在我的main包中设置了一个Version变量,方法是:-ldflags"-Xmain.Version=1.0.0",但是我真正需要的是在我的config包中设置Version变量,而不是main变量。这可能吗?这是我的构建命令:gobuild-ldflags"-Xconfig.Version=1.0.0"-o$(MY_BIN)$(MY_SRC) 最佳答案 引自Commandlink的文档:-Ximportpa

amazon-web-services - 如何使用此架构在 Elastic Search 中复制索引?

我有一个场景,我必须从多个来源导入数据(数百万条记录)并将其保存在数据库中。当用户尝试搜索与该数据相关的任何信息时,他们应该会在2-3秒内获得结果。为此,我设计了一个架构,在该架构中,我使用golang从多个来源导入数据并在AWSSQS中推送数据。我创建了一个lambda函数,它在AWSSQS有一些数据时触发。然后,此lambda函数将数据推送到AWSElasticSearch中。我创建了一个RestAPI,我使用它向用户提供结果。我每天早上都使用CRON来完成导入工作。现在我的问题是,如果有一批新数据出现,我想删除现有数据并用新数据替换所有数据。我坚持如何实现删除和添加新数据部分。我